package com.lantosec.hmrp.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lantosec.hmrp.core.kit.PageVO;
import com.lantosec.hmrp.core.kit.tree.TreeNodeVo;
import com.lantosec.hmrp.modules.system.entity.SysDictionaries;

import java.util.List;

/**
 * <p>
 * 数据字典表 服务类
 * </p>
 *
 * @author AutoCode
 * @since 2020-02-11
 */
public interface ISysDictionariesService extends IService<SysDictionaries> {
    /**
     * 字典主树
     * @return 字典树
     */
    public List<TreeNodeVo> dictionariesTree();


    /**
     * 根据指定ID查询对应的字典树
     * @param dsictionariesId  字典ID
     * @return 字典树
     */
    public List<TreeNodeVo> dictionariesTree(String dsictionariesId);

    /**
     * 获得指定Id下的字典树节点，不包含节点下的子节点
     *
     * @param dsictionariesId 字典ID
     * @return 节点列表
     */
    public List<TreeNodeVo> dictionariesNodes(String dsictionariesId);

    /**
     * 获得指定Id下的字典列表
     *
     * @param dsictionariesId 字典ID
     * @return 字典列表
     */
    public List<SysDictionaries> listForParentId(String dsictionariesId);

    /**
     * 更新字典数据排序
     * @param id
     * @param dictionariesOrder
     */
    public void updateOrder(String id,Integer dictionariesOrder);

    /**
     * 根据数据字典id查询（id为空时查询所有）
     * @param id
     * @return
     */
    public List<SysDictionaries> getDictionariesById(String id);

    /**
     * 通过数据字典名称查询是否有同名的数据存在
     * @param dictionariesName
     * @return
     */
    public List getDictionariesByName(String dictionariesName);

    /**
     * 更新当前名字存在的数据
     * @param entity
     */
    public void updateDictionariesByName(SysDictionaries entity);

    /**
     * 获得字段树
     * @param id
     * @return
     */
    public List<TreeNodeVo> getTree(String id);

    String queryMaxId(String parentId);
}
